/*
 * Copyright (C) 2017-2021
 * All rights reserved, Designed By
 * Copyright authorization contact 18814114118
 */
package com.shop.cereshop.app.page.index;

import com.shop.cereshop.commons.domain.calculate.Calculate;
import com.shop.cereshop.commons.domain.shop.CereBusinessTime;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

/**
 * 搜索商品数据
 */
@Data
@ApiModel(value = "Product", description = "搜索商品数据")
public class Product {
    /**
     * 商品分类id
     */
    private Integer  classifyId2;

    /**
     * 店铺id
     */
    @ApiModelProperty(value = "店铺id")
    private Long shopId;
    /**
     * 店铺名称
     */
    @ApiModelProperty(value = "店铺名称")
    private String shopName;

    /**
     * 店铺图标
     */
    @ApiModelProperty(value = "店铺图标")
    private String shopLogo;

    /**
     * 商品id
     */
    @ApiModelProperty(value = "商品id")
    private Long productId;

    /**
     * 规格id
     */
    @ApiModelProperty(value = "规格id")
    private Long skuId;

    /**
     * 商品名称
     */
    @ApiModelProperty(value = "商品名称")
    private String productName;

    /**
     * 商品图片
     */
    @ApiModelProperty(value = "商品图片")
    private String productImage;

    /**
     * 商品原价
     */
    @ApiModelProperty(value = "商品原价")
    private BigDecimal originalPrice;

    /**
     * 商品售价
     */
    @ApiModelProperty(value = "商品售价")
    private BigDecimal price;

    /**
     * 付款人数
     */
    @ApiModelProperty(value = "付款人数")
    private Integer users;

    /**
     * 商品简介
     */
    @ApiModelProperty(value = "商品简介")
    private String productBrief;

    /**
     * 所属活动 0-常规商品 1-拼团活动 2-秒杀活动 3-限时折扣活动 4-平台秒杀 5-平台折扣 6-定价捆绑 7-组合捆绑 8-场景营销 9-会员价
     */
    @ApiModelProperty(value = "所属活动 0-常规商品 1-拼团活动 2-秒杀活动 3-限时折扣活动 4-平台秒杀 5-平台折扣 6-定价捆绑 7-组合捆绑 8-场景营销 9-会员价")
    private Integer activityType;

    /**
     * 已售件数
     */
    @ApiModelProperty(value = "已售件数")
    private Integer realNumber;

    /**
     * 活动限制总数
     */
    @ApiModelProperty(value = "活动限制总数")
    private Integer total;

    /**   ;p
     * 商品满意度平均分（如4.5）
     */
    @ApiModelProperty(value = "商品满意度平均分（如4.5）")
    private BigDecimal avgStar;


    /**
     * 评论总数（如120）
     */
    @ApiModelProperty(value = "评论总数（如120）")
    private Integer commentCount;

    /**
     *完整店铺地址
     */
    @ApiModelProperty(value = "店铺市级adcode")
    private String shopAdress;
    /**
     * 省份
     */
    @ApiModelProperty(value = "省份")
    private String shopAdressProvince;

    /**
     * 城市
     */
    @ApiModelProperty(value = "城市")
    private String shopAdressCity;

    /**
     * 详细地址
     */
    @ApiModelProperty(value = "详细地址")
    private String shopAdressDetail;

    /**
     * 配送属性
     */
    @ApiModelProperty(value = "1表示线下核销(到点用)，2表示线上商城")
    private Integer distribution;


    /**
     * 店铺类型
     */
    @ApiModelProperty(value = "1表示同城服务,2表示线上商城,3表示同城配送")
    private Integer status;


    /**
     * 店铺资质
     */
    @ApiModelProperty(value = "1普通企业店,2-个体工商户,3-品牌旗舰店 4-其他组织")
    private Integer authenType;

    /**
     * 是否全周可用
     */
    @ApiModelProperty(value = "是否全周可用,字段为1表示全周可用，字段为0表示否")
    private Integer allWeekToUse;

    /**
     * 虚拟销量
     */
    @ApiModelProperty(value = "商品虚拟销量")
     private Integer fictitiousNumber;

    /**
     * 店铺营业时间
     */
    @ApiModelProperty(value = "店铺营业时间")
    private List<CereBusinessTime> week;

    /**
     * 全天营业店铺
     */
    @ApiModelProperty(value = "全天营业店铺,1表示全天营业,0表示否")
    private Integer allDayToUse;

    /**
     * 是否好评如潮
     */
    @ApiModelProperty(value = "是否好评如潮,1表示好评如潮,0表示否")
    private Integer goodLikeWater;

    /**
     * 同城服务(客户到商家的距离)
     */
    @ApiModelProperty(value = "同城服务(客户到商家的距离)")
    private String distance;

    /**
     * 同城服务(客户到商家的时间)
     */
    @ApiModelProperty(value = "同城服务(客户到商家时间)")
    private String time;

    /**
     * 城配送(商家到客户距离)
     */
    @ApiModelProperty(value = "同城服务(客户到商家的距离)")
    private String driverDistance;

    /**
     * 同城服务(客户到商家的时间)
     */
    @ApiModelProperty(value = "同城服务(客户到商家时间)")
    private String DriverTime;

    /**
     * 商品虚拟销量
     */
    @ApiModelProperty(value = "商品总销量,虚拟销量+实际销量")
    private Integer totalNumber;

    /**
     * 判断是否是热销商品
     */
    @ApiModelProperty(value = "商品是否是热销商品(1表示热销商品，0表示否)")
    private Integer hotProduct;

    /**
     * 商品分类均价
     */
    @ApiModelProperty(value = "商品分类均价")
    BigDecimal classifyAveragePrice;

    /**
     * 是否价格实惠
     */
    @ApiModelProperty(value = "是否价格实惠(1表示价格实惠，0表示否)")
    private Integer priceGood;
    /**
     * 店铺点位
     *
     */
    @ApiModelProperty(value = "店铺点位")
    String location;

    /**
     * 用户距离商家的距离
     */
    @ApiModelProperty(value = "用户距离商家的距离，单位公里")
    Double userAndShopDistance;

    /**
     * 商品标签
     */
    @ApiModelProperty(value = "商品标签")
    private List<String> productLabels;

    public void setProductLabels( Calculate calculate) {
        List<String> list = new ArrayList<>();

        if (calculate.getShopAllWeekToUer() != null && 1 == calculate.getShopAllWeekToUer()) {
            list.add("全周可用");
        }
        if (calculate.getShopGoodLikeWater() != null && 1 == calculate.getShopGoodLikeWater()) {
            list.add("好评如潮");
        }
        if (calculate.getHotProduct() != null && 1 == calculate.getHotProduct()) {
            list.add("热销商品");
        }
        if (calculate.getPriceGood()!= null && 1 == calculate.getPriceGood()){
            list.add("价格实惠");
        }



        this.productLabels = list;
    }


    }



